home *** CD-ROM | disk | FTP | other *** search
- From: Ulrich Kuehn <kuehn@GOEDEL.UNI-MUENSTER.DE>
- Subject: Patch for seteuid/setegid
- Date: Mon, 09 May 1994 10:43:52 +0200
-
- Hello!
-
- Here is a patch that implements Pseteuid()/Psetegid(), which are needed
- for an nfs daemon to do access checking (and probably for a lot of other
- things). So I would like this patch making its way into the next release
- of mint.
-
- diff -ur old/dos.c ./dos.c
- --- old/dos.c Fri May 6 23:46:04 1994
- +++ ./dos.c Sat May 7 00:02:34 1994
- @@ -208,6 +208,31 @@
- return EACCDN;
- }
-
- +
- +/* uk: set effective uid/gid but leave the real uid/gid unchanged. */
- +long ARGS_ON_STACK
- +p_seteuid(id)
- + int id;
- +{
- + if (curproc->euid == 0 || curproc->ruid == id) {
- + curproc->euid = id;
- + return id;
- + }
- + return EACCDN;
- +}
- +
- +long ARGS_ON_STACK
- +p_setegid(id)
- + int id;
- +{
- + if (curproc->euid == 0 || curproc->egid == 0 || curproc->rgid == id) {
- + curproc->egid = id;
- + return id;
- + }
- + return EACCDN;
- +}
- +
- +
- /*
- * a way to get/set process-specific user information. the user information
- * longword is set to "arg", unless arg is -1. In any case, the old
- @@ -623,4 +648,6 @@
- dos_tab[0x13e] = p_sigintr;
- dos_tab[0x13f] = s_uptime;
- dos_tab[0x142] = d_xreaddir;
- + dos_tab[0x143] = p_seteuid;
- + dos_tab[0x144] = p_setegid;
- }
- diff -ur old/proto.h ./proto.h
- --- old/proto.h Fri May 6 23:55:06 1994
- +++ ./proto.h Fri May 6 23:56:02 1994
- @@ -78,6 +78,8 @@
- long ARGS_ON_STACK p_getegid P_((void));
- long ARGS_ON_STACK p_setuid P_((int id));
- long ARGS_ON_STACK p_setgid P_((int id));
- +long ARGS_ON_STACK p_seteuid P_((int id));
- +long ARGS_ON_STACK p_setegid P_((int id));
- long ARGS_ON_STACK p_usrval P_((long arg));
- long ARGS_ON_STACK p_umask P_((unsigned mode));
- long ARGS_ON_STACK p_domain P_((int arg));
-
- Regards,
- Ulrich
-
- p.s.: Thorsten, sorry, but I think You have to choose some other function
- numbers for Your patch :)
-
- --
- +---------------+----------------------------+-----------------------+
- | Ulrich Kuehn | Internet: | Life is uncertain -- |
- | Cand.Math.Inf | kuehn@math.uni-muenster.de | eat the dessert first |
- +---------------+----------------------------+-----------------------+
-